// 引入项目中全部的全局组件
import SvgIcon from './SvgIcon/index.vue';
import Category from './Category/index.vue';
// 引入 element-plus 全部的图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

import type { App, Component } from 'vue';
// 全局对象 allGlobalComponents 里面有属性 SvgIcon 等，作为键；而值是一个个 Component 自身组件对象
const allGlobalComponents: { [name: string]: Component } = { SvgIcon, Category };
// console.log(allGlobalComponents);

// 对外暴露插件对象
export default {
  //使用install方法
  install(app: App) {
    // 遍历对象，将对象中的组件注册到vue中，成为全局组件
    Object.keys(allGlobalComponents).forEach((key) => {
      // 注册组件
      app.component(key, allGlobalComponents[key]);
    })
    // 将element-plus图标注册为全局组件
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component)
    }
  }
};